home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / languages / obrn-a_1.5_lib.lha / oberon-a / source2.lha / source / amiga / MathFFP.mod < prev    next >
Encoding:
Text File  |  1995-01-26  |  3.0 KB  |  138 lines

  1. (**************************************************************************
  2.  
  3.      $RCSfile: MathFFP.mod $
  4.   Description: Interface to mathffp.library
  5.  
  6.    Created by: fjc (Frank Copeland)
  7.     $Revision: 3.7 $
  8.       $Author: fjc $
  9.         $Date: 1995/01/26 02:39:55 $
  10.  
  11.   Includes Release 40.15
  12.  
  13.   (C) Copyright 1985-1993 Commodore-Amiga, Inc.
  14.       All Rights Reserved
  15.  
  16.   Oberon-A interface Copyright © 1994-1995, Frank Copeland.
  17.   This file is part of the Oberon-A Interface.
  18.   See Oberon-A.doc for conditions of use and distribution.
  19.  
  20. ***************************************************************************)
  21.  
  22. <* STANDARD- *> <* INITIALISE- *> <* MAIN- *>
  23.  
  24. MODULE [2] MathFFP;
  25.  
  26. <*$ CaseChk-  IndexChk- LongVars+ NilChk-  *>
  27. <*$ RangeChk- StackChk- TypeChk-  OvflChk- *>
  28.  
  29. IMPORT SYS := SYSTEM, Kernel, x := Exec;
  30.  
  31.  
  32. (*
  33. **      $VER: mathffp.h 36.2 (1.5.90)
  34. **
  35. **      general floating point declarations
  36. *)
  37.  
  38. CONST
  39.  
  40.   pi *       = 3.141592653589793;
  41.   twoPi *    = 6.283185307179586; (* Pi * 2.0 *)
  42.   pi2 *      = 1.570796326794696; (* Pi / 2.0 *)
  43.   pi4 *      = 0.785398163397448; (* Pi / 4.0 *)
  44.   e *        = 2.718281828459045;
  45.   log10 *    = 2.302585092994046;
  46.  
  47.   fpTen *    = 10.0;
  48.   fpOne *    = 1.0;
  49.   fpHalf *   = 0.5;
  50.   fpZero *   = 0.0;
  51.  
  52.  
  53. (*-- Library Base variable --------------------------------------------*)
  54.  
  55. CONST
  56.  
  57.   MathFFPName * = "mathffp.library";
  58.  
  59. VAR
  60.  
  61.   base * : x.LibraryPtr;
  62.  
  63.  
  64. (*-- Library Functions ------------------------------------------------*)
  65.  
  66. (*
  67. **      $VER: mathffp_protos.h 1.4 (3.5.90)
  68. *)
  69.  
  70. (*
  71.  *  There is no need to call any of these functions directly.  They are
  72.  *  called inline by the compiler when translating expressions
  73.  *  involving REAL values.  They are defined here for completeness.
  74.  *)
  75.  
  76. PROCEDURE Fix* [base,-30]
  77.   ( parm [0] : REAL )
  78.   : LONGINT;
  79. PROCEDURE Flt* [base,-36]
  80.   ( integer [0] : LONGINT )
  81.   : REAL;
  82. PROCEDURE Cmp* [base,-42]
  83.   ( leftParm  [1] : REAL;
  84.     rightParm [0] : REAL )
  85.   : LONGINT;
  86. PROCEDURE Tst* [base,-48]
  87.   ( parm [1] : REAL )
  88.   : LONGINT;
  89. PROCEDURE Abs* [base,-54]
  90.   ( parm [0] : REAL )
  91.   : REAL;
  92. PROCEDURE Neg* [base,-60]
  93.   ( parm [0] : REAL )
  94.   : REAL;
  95. PROCEDURE Add* [base,-66]
  96.   ( leftParm  [1] : REAL;
  97.     rightParm [0] : REAL )
  98.   : REAL;
  99. PROCEDURE Sub* [base,-72]
  100.   ( leftParm  [1] : REAL;
  101.     rightParm [0] : REAL )
  102.   : REAL;
  103. PROCEDURE Mul* [base,-78]
  104.   ( leftParm  [1] : REAL;
  105.     rightParm [0] : REAL )
  106.   : REAL;
  107. PROCEDURE Div* [base,-84]
  108.   ( leftParm  [1] : REAL;
  109.     rightParm [0] : REAL )
  110.   : REAL;
  111.  
  112. (* --- functions in V33 or higher (distributed as Release 1.2) ---*)
  113.  
  114. PROCEDURE Floor* [base,-90]
  115.   ( parm [0] : REAL )
  116.   : REAL;
  117. PROCEDURE Ceil* [base,-96]
  118.   ( parm [0] : REAL )
  119.   : REAL;
  120.  
  121.  
  122. (*-- Library Base variable --------------------------------------------*)
  123.  
  124. <*$LongVars-*>
  125.  
  126. (*-----------------------------------*)
  127. PROCEDURE* [0] CloseLib (VAR rc : LONGINT);
  128.  
  129. BEGIN (* CloseLib *)
  130.   IF base # NIL THEN x.CloseLibrary (base) END
  131. END CloseLib;
  132.  
  133. BEGIN
  134.   base := x.OpenLibrary (MathFFPName, x.libraryMinimum);
  135.   IF base = NIL THEN HALT (100) END;
  136.   Kernel.SetCleanup (CloseLib)
  137. END MathFFP.
  138.